本章將示範如何為你的備份用戶在 Rackspace 的儲存容器上設置 Rackspace 的儲存限額。
如果你未曾接觸過 Rackspace,你應該先參考他們在 http://support.rackspace.com/ 的常規設置文檔。
如果你已經使用 Rackspace,你可以按照我們的步驟來為你的備份用戶設置存儲。我們將指導你完成以下的步驟:
在完成這些步驟後,就可以為容器設置配額了。
在設置下面的存儲配額步驟前,我們假設你已經在備份客戶端建立了 Rackspace 的存儲。而容器的命名語法如下: "mybackup-<username>" 。
收集從 "用戶管理"(User Management) > "用戶名稱" (Username)(點擊你需要獲得API密鑰的用戶名稱。)> "登錄詳細信息"(Login Details) > "API密鑰" (API Key)
點擊"顯示"(Show) ,以顯示已遮罩的密鑰。
連接到一台安裝了curl 的 Linux 伺服器。你需要使用 curl 指令來向 Rackspace 的伺服器申請訪問令牌。
使用方法: Usage: curl -v -k -s https://identity.api.rackspacecloud.com/v2.0/tokens -X "POST" -d "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"<user name>\", \"apiKey\":\"<API Key>\"}}}" -H "Content-Type: application/json"
注: API 密鑰可以從上一步驟中獲取。
---------------------------------------------------------------------------------------------------- [root@os ~]# curl -v -k -s https://identity.api.rackspacecloud.com/v2.0/tokens - X "POST" -d "{\"auth\":{\"RAX-KSKEY:apiKeyCredentials\":{\"username\":\"DavidCha n\", \"apiKey\":\"778b2d84b63334e36a2d841339663446\"}}}" -H "Content-Type: appli cation/json" * About to connect() to identity.api.rackspacecloud.com port 443 (#0) * Trying 72.3.138.129... connected * Connected to identity.api.rackspacecloud.com (72.3.138.129) port 443 (#0) : : : 修剪 : : : {"access":{"token":{"id":"e85127fa63824a9f85ba437d1061b5c0","expires":"2014-11-1 8T07:26:16.071Z","tenant":{"id":"926819","name":"926819"},"RAX-AUTH:authenticate dBy":["APIKEY"]},"serviceCatalog":[{"name":"cloudFilesCDN","endpoints":{"region" :"HKG","tenantId":"MossoCloudFS_926819","publicURL":"https:\/\/cdn6.clouddrive.c om\/v1\/MossoCloudFS_926819"},{"region":"SYD","tenantId":"MossoCloudFS_926819"," publicURL":"https:\/\/cdn4.clouddrive.com\/v1\/MossoCloudFS_926819"},{"region":" DFW","tenantId":"MossoCloudFS_926819","publicURL":"https:\/\/cdn1.clouddrive.com \/v1\/MossoCloudFS_926819"},{"region":"IAD","tenantId":"MossoCloudFS_926819","pu blicURL":"https:\/\/cdn5.clouddrive.com\/v1\/MossoCloudFS_926819"},{"region":"OR D","tenantId":"MossoCloudFS_926819","publicURL":"https:\/\/cdn2.clouddrive.com\/ v1\/MossoCloudFS_926819"}],"type":"rax:object-cdn"},{"name":"cloudFiles","endpoi nts":[{"region":"HKG","tenantId":"MossoCloudFS_926819","publicURL":"https:\/\/st orage101.hkg1.clouddrive.com\/v1\/MossoCloudFS_926819","internalURL":"https:\/\/ snet-storage101.hkg1.clouddrive.com\/v1\/MossoCloudFS_926819"}, : : : 修剪 : : : "user":{"id":"0c3001f01cb94856a87f8653ab875117","roles":[{"id":"10000256","descr iption":"Object Store Admin Role for Account User","name":"object-store:admin"}, {"tenant* Connection #0 to host identity.api.rackspacecloud.com left intact * Cl osing connection #0 Id":"926819","id":"6","description":"A Role that allows a us er access to keystone Service methods","name":"compute:default"},{"tenantId":"Mo ssoCloudFS_926819","id":"5","description":"A Role that allows a user access to k eystone Service methods","name":"object-store:default"},{"id":"2","description": "Default Role.","name":"identity:default"}],"name":"DavidChan","RAX-AUTH:default Region":"HKG"}}}[root@os ~]# [root@os ~]# ----------------------------------------------------------------------------------------------------
需要先收集上述強調的值,然後才能提交其他 curl 指令來設置配額。由於返回的字串是長而零星的信息,你可以使用第三方的解析器如: JSON viewer 解讀上面的字串。
注:
上面的例子是經過修剪以適合放於這個文章中。
如果你是使用 JSON viewer,你需要複製下面的字串
{"access":{"token ......修剪...... defaultRegion":"HKG"}}}, 並顯示於 JSON viewer 內。
要設置配額,你需要從上一步返回的字串中提取以下3條信息。
以及收集來自 Rackspace 雲控制面板的容器名稱。
3.1 token id
token id 可以在令牌的對象中收集。
例如 e85127fa63824a9f85ba437d1051b5c0
---------------------------------------------------------------------------------------------------- : : : {"access":{"token":{"id":"e85127fa63824a9f85ba437d1061b5c0","expires":"2014-11-1 8T07:26:16.071Z","tenant":{"id":"926819","name":"926819"},"RAX-AUTH:authenticate dBy":["APIKEY"]} : : : ----------------------------------------------------------------------------------------------------
從 JSON Viewer 中:
3.2 RAX-AUTH:defaultRegion
默認地區可以用戶對象中收集。
例如 HKG
---------------------------------------------------------------------------------------------------- : : : "user":{"id":"0c3001f01cb94856a87f8653ab875117","roles":[{"id":"10000256","descr iption":"Object Store Admin Role for Account User","name":"object-store:admin"}, {"tenant* Connection #0 to host identity.api.rackspacecloud.com left intact * Cl osing connection #0 Id":"926819","id":"6","description":"A Role that allows a us er access to keystone Service methods","name":"compute:default"},"tenantId":"Mos soCloudFS_926819","id":"5","description":"A Role that allows a user access to ke ystone Service methods","name":"object-store:default"},{"id":"2","description":" Default Role.","name":"identity:default"}],"name":"DavidChan","RAX-AUTH:defaultR egion":"HKG"}} : : : ----------------------------------------------------------------------------------------------------
從 JSON Viewer 中:
3.3 端點的公開網址
你需要從對象 serviceCatalog 中找出端點的公開網址,與子對象的名稱 "cloudFiles",尋找端點內使用默認的地區(如HKG),那麼你就可以找到公開網址的路徑。
例如 https://storage101.hkg1.clouddrive.com/v1/MossoCloudFS_926819
---------------------------------------------------------------------------------------------------- : : : "serviceCatalog":[{"name":"cloudFilesCDN","endpoints":[{"region":"HKG","tenantId ":"MossoCloudFS_926819","publicURL":"https:\/\/cdn6.clouddrive.com\/v1\/MossoClo udFS_926819"},{"region":"SYD","tenantId":"MossoCloudFS_926819","publicURL":"http s:\/\/cdn4.clouddrive.com\/v1\/MossoCloudFS_926819"},{"region":"DFW","tenantId": "MossoCloudFS_926819","publicURL":"https:\/\/cdn1.clouddrive.com\/v1\/MossoCloud FS_926819"},{"region":"IAD","tenantId":"MossoCloudFS_926819","publicURL":"https: \/\/cdn5.clouddrive.com\/v1\/MossoCloudFS_926819"},{"region":"ORD","tenantId":"M ossoCloudFS_926819","publicURL":"https:\/\/cdn2.clouddrive.com\/v1\/MossoCloudFS _926819"}],"type":"rax:object-cdn"},{"name":"cloudFiles","endpoints":[{"region": "HKG","tenantId":"MossoCloudFS_926819","publicURL":"https:\/\/storage101.hkg1.cl ouddrive.com\/v1\/MossoCloudFS_926819","internalURL":"https:\/\/snet-storage101. hkg1.clouddrive.com\/v1\/MossoCloudFS_926819"}, : : : ----------------------------------------------------------------------------------------------------
從 JSON Viewer 中:
3.4 容器名稱
當備份集在備份客戶端中建立後,容器名稱可以在 Rackspace 雲控制面板中的 "文件"(Files) 標籤中找到。
例如: mybackup-davidchan
在這個例子中,我們將設置容器為2MB配額(2097152位元)。
使用方法: curl -v -k -X PUT -H "X-Container-Meta-Quota-Bytes: <quota>" -H "X-Auth-Token: <token id>" <endpoints public URL>/<container name>
注:
Rackspace 的容器網址是端點的公開網址和為你的用戶建立的容器名稱,就是
https://storage101.hkg1.clouddrive.com/v1/MossoCloudFS_926819 及 mybackup-davidchan
你需要把斜線 "/" 放在2個值之間。
例如: https://storage101.hkg1.clouddrive.com/v1/MossoCloudFS_926819/mybackup-davidchan
---------------------------------------------------------------------------------------------------- [root@os ~]# curl -v -k -X PUT -H "X-Container-Meta-Quota-Bytes: 2097152" -H "X- Auth-Token: e85127fa63824a9f85ba437d1061b5c0" https://storage101.hkg1.clouddrive .com/v1/MossoCloudFS_926819/mybackup-davidchan * About to connect() to storage101.hkg1.clouddrive.com port 443 (#0) * Trying 119.9.64.232... connected * Connected to storage101.hkg1.clouddrive.com (119.9.64.232) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * warning: ignoring value of ssl.verifyhost * skipping SSL peer certificate verification * SSL connection using TLS_DHE_RSA_WITH_AES_256_CBC_SHA * Server certificate: * subject: CN=storage101.hkg1.clouddrive.com,OU=Domain Validated,OU=Thawte SSL123 certificate,OU=Go to https://www.thawte.com/repository/index.html * start date: Aug 15 00:00:00 2013 GMT * expire date: Aug 15 23:59:59 2015 GMT * common name: storage101.hkg1.clouddrive.com * issuer: CN=Thawte DV SSL CA,OU=Domain Validated SSL,O="Thawte, Inc.",C=U S > PUT /v1/MossoCloudFS_926819/mybackup-davidchan HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zl ib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: storage101.hkg1.clouddrive.com > Accept: */* > X-Container-Meta-Quota-Bytes: 2097152 > X-Auth-Token: e85127fa63824a9f85ba437d1061b5c0 > < HTTP/1.1 202 Accepted < Content-Length: 76 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: tx682827faeba84b3bba3ee-005469b15ahkg1 < Date: Mon, 17 Nov 2014 08:27:06 GMT < * Connection #0 to host storage101.hkg1.clouddrive.com left intact * Closing connection #0 <html><h1>Accepted</h1><p>The request is accepted for processing.</p></html>[roo t@os ~]# [root@os ~]# ----------------------------------------------------------------------------------------------------
當你看到"接受"(Accepted)訊息返回時,2MB的配額已成功設置。